package cc.rengu.igas.channel.allinpay.facade;

import cc.rengu.igas.channel.allinpay.facade.request.AllinpayFiveFactorAuthenticationRequest;
import cc.rengu.igas.channel.allinpay.facade.request.AllinpayFourFactorAuthenticationRequest;
import cc.rengu.igas.channel.allinpay.facade.response.AllinpayFiveFactorAuthenticationResponse;
import cc.rengu.igas.channel.allinpay.facade.response.AllinpayFourFactorAuthenticationResponse;
import cc.rengu.igas.channel.allinpay.facade.result.Result;

/**
 * 通联鉴权服务组件
 */
public interface AllinpayAuthenticationService {

    /**
     * 通联五要素鉴权
     *
     * @param allinpayFiveFactorAuthenticationRequest 通联五要素鉴权请求
     * @return 鉴权结果
     */
    Result<AllinpayFiveFactorAuthenticationResponse> AllinpayFiveFactorAuthentication(AllinpayFiveFactorAuthenticationRequest allinpayFiveFactorAuthenticationRequest);

    /**
     * 通联四要素鉴权
     *
     * @param allinpayFourFactorAuthenticationRequest 通联四要素鉴权请求
     * @return
     */
    Result<AllinpayFourFactorAuthenticationResponse> AllinpayFourFactorAuthentication(AllinpayFourFactorAuthenticationRequest allinpayFourFactorAuthenticationRequest);
}
